home *** CD-ROM | disk | FTP | other *** search
- /* FilterSpec.h */
-
- #ifndef Included_FilterSpec_h
- #define Included_FilterSpec_h
-
- /* FilterSpec module depends on */
- /* MiscInfo.h */
- /* Audit */
- /* Debug */
- /* Definitions */
- /* Memory */
- /* Array */
- /* LFOListSpecifier */
- /* Envelope */
-
- struct FilterSpecRec;
- typedef struct FilterSpecRec FilterSpecRec;
-
- struct OneFilterRec;
- typedef struct OneFilterRec OneFilterRec;
-
- /* types of filters */
- typedef enum
- {
- eFilterNull EXECUTE(= -2341),
- eFilterFirstOrderLowpass,
- eFilterFirstOrderHighpass,
- eFilterSecondOrderResonant,
- eFilterSecondOrderZero,
- eFilterButterworthLowpass,
- eFilterButterworthHighpass,
- eFilterButterworthBandpass,
- eFilterButterworthBandreject
- } FilterTypes;
-
- /* signal normalization options */
- typedef enum
- {
- eFilterDefaultScaling EXECUTE(= -5132),
- eFilterResonMidbandGain1,
- eFilterResonNoiseGain1,
- eFilterZeroGain1
- } FilterScalings;
-
- /* filter channels */
- typedef enum
- {
- eFilterLeft EXECUTE(= 12435),
- eFilterRight,
- eFilterBoth
- } FilterChannels;
-
- /* forwards */
- struct EnvelopeRec;
- struct LFOListSpecRec;
-
- /* create a new parallel filter specification */
- FilterSpecRec* NewFilterSpec(void);
-
- /* dispose of a filter specification */
- void DisposeFilterSpec(FilterSpecRec* Filter);
-
- /* add a single filter to the list */
- MyBoolean AppendFilterToSpec(FilterSpecRec* Filter, OneFilterRec* Spec);
-
- /* get the number of filters */
- long GetNumFiltersInSpec(FilterSpecRec* Filter);
-
- /* get a filter type for the specified filter spec */
- FilterTypes GetFilterType(FilterSpecRec* Filter, long Index);
-
- /* get which channel to apply a filter to */
- FilterChannels GetFilterChannel(FilterSpecRec* Filter, long Index);
-
- /* get the cutoff frequency for a filter */
- float GetFilterCutoff(FilterSpecRec* Filter, long Index);
- float GetFilterCutoffAccent1(FilterSpecRec* Filter, long Index);
- float GetFilterCutoffAccent2(FilterSpecRec* Filter, long Index);
- float GetFilterCutoffAccent3(FilterSpecRec* Filter, long Index);
- float GetFilterCutoffAccent4(FilterSpecRec* Filter, long Index);
-
- /* get the filter bandwidth */
- float GetFilterBandwidth(FilterSpecRec* Filter, long Index);
- float GetFilterBandwidthAccent1(FilterSpecRec* Filter, long Index);
- float GetFilterBandwidthAccent2(FilterSpecRec* Filter, long Index);
- float GetFilterBandwidthAccent3(FilterSpecRec* Filter, long Index);
- float GetFilterBandwidthAccent4(FilterSpecRec* Filter, long Index);
-
- /* get filter scaling mode */
- FilterScalings GetFilterScalingMode(FilterSpecRec* Filter, long Index);
-
- /* get filter output multiplier */
- float GetFilterOutputMultiplier(FilterSpecRec* Filter, long Index);
- float GetFilterOutputMultiplierAccent1(FilterSpecRec* Filter, long Index);
- float GetFilterOutputMultiplierAccent2(FilterSpecRec* Filter, long Index);
- float GetFilterOutputMultiplierAccent3(FilterSpecRec* Filter, long Index);
- float GetFilterOutputMultiplierAccent4(FilterSpecRec* Filter, long Index);
-
- /* get envelope things */
- struct EnvelopeRec* GetFilterCutoffEnvelope(FilterSpecRec* Filter, long Index);
- struct EnvelopeRec* GetFilterBandwidthEnvelope(FilterSpecRec* Filter, long Index);
- struct EnvelopeRec* GetFilterOutputEnvelope(FilterSpecRec* Filter, long Index);
- struct LFOListSpecRec* GetFilterCutoffLFO(FilterSpecRec* Filter, long Index);
- struct LFOListSpecRec* GetFilterBandwidthLFO(FilterSpecRec* Filter, long Index);
- struct LFOListSpecRec* GetFilterOutputLFO(FilterSpecRec* Filter, long Index);
-
- /* create a new filter specification record */
- OneFilterRec* NewSingleFilterSpec(FilterTypes FilterType);
-
- /* dispose of a single filter specification record */
- void DisposeSingleFilterSpec(OneFilterRec* Spec);
-
- /* set filter cutoff value */
- void SetSingleFilterCutoff(OneFilterRec* Spec, float Cutoff);
- void SetSingleFilterCutoffAccent1(OneFilterRec* Spec, float Accent1);
- void SetSingleFilterCutoffAccent2(OneFilterRec* Spec, float Accent2);
- void SetSingleFilterCutoffAccent3(OneFilterRec* Spec, float Accent3);
- void SetSingleFilterCutoffAccent4(OneFilterRec* Spec, float Accent4);
-
- /* set filter bandwidth value */
- void SetSingleFilterBandwidth(OneFilterRec* Spec, float Bandwidth);
- void SetSingleFilterBandwidthAccent1(OneFilterRec* Spec, float Accent1);
- void SetSingleFilterBandwidthAccent2(OneFilterRec* Spec, float Accent2);
- void SetSingleFilterBandwidthAccent3(OneFilterRec* Spec, float Accent3);
- void SetSingleFilterBandwidthAccent4(OneFilterRec* Spec, float Accent4);
-
- /* set filter scaling mode */
- void SetSingleFilterScalingMode(OneFilterRec* Spec, FilterScalings Scaling);
-
- /* set filter channel */
- void SetSingleFilterChannel(OneFilterRec* Spec, FilterChannels Channel);
-
- /* set filter output multiplier */
- void SetSingleFilterOutputMultiplier(OneFilterRec* Spec, float Output);
- void SetSingleFilterOutputMultiplierAccent1(OneFilterRec* Spec, float Accent1);
- void SetSingleFilterOutputMultiplierAccent2(OneFilterRec* Spec, float Accent2);
- void SetSingleFilterOutputMultiplierAccent3(OneFilterRec* Spec, float Accent3);
- void SetSingleFilterOutputMultiplierAccent4(OneFilterRec* Spec, float Accent4);
-
- #endif
-